1. Field of the Invention
This invention relates generally to filters in connection with a wireless communication device and more practically to code-tracking loops.
2. Related Art
A Satellite Positioning System (SPS) receiver such as a Global Positioning System (GPS) receiver converts a received spread spectrum IF signal to a signal of a lower frequency. This lower frequency signal is obtained by mixing the received signal with a pure sinusoidal signal generated by a local oscillator. The frequency of the sinusoidal signal is the difference between the original (Doppler-shifted) received carrier frequency and the local oscillator signal. The lower frequency signal is then processed by signal tracking circuits in the GPS device.
A common class of signal processing techniques that is used to track carrier phase includes “code-correlating” approaches. Code-correlating receivers use tracking loops or tracking loop filters to extract the necessary measurements and navigation message data from the lower frequency signal. A typical GPS receiver contains two types of tracking loops; a code-tracking loop filter and a carrier-tracking loop.
The code-tracking loop filter, such as a Kalman filter is used to align the pseudo code (commonly called P-code) sequence contained in the received signal from one of a plurality of satellites with an identical P-code generated within the receiver. A correlator in the delay-lock loop continuously cross-correlates the two P-code sequences, time shifting the receiver-generated stream until alignment is achieved resulting in a pseudo-range determination. Once the code-tracking loop is aligned, the P-code can be removed from the received spread spectrum IF signal from the satellite. The stripped signal then passes to a phase-lock loop where the satellite message is extracted. Upon a local oscillator locking onto the received satellite signal it will be adjusted to follow the variations in the phase of the carrier as the GPS receiver distance changes. The integrated carrier frequency phase is obtained by simply counting the whole elapsed cycles by noting the “zero crossings” of the sinusoidal signal generated by the local oscillator and measuring the fractional phase of the locked local oscillator signal.
The capabilities of a typical code-tracking loop filter including the “pull in” performance for initial errors, Loop Noise and Dynamics handling, is controlled by the set bandwidth of the tracking loop. The first order code-tracking loop filter, which is the most common of the code-tracking loop filters, is implemented with a constant gain factor. The “pull in” will be faster if the loop bandwidth is higher, but the Loop Noise is also higher if the loop bandwidth is higher. A higher bandwidth loop enables the code-tracking loop to handle higher signal dynamics and results in lower sensitivity (lose lock at higher CNO) due to the higher Loop Noise. Previous approaches have improved noise performance and sensitivity by using lower bandwidth tracking loops that result in the loss of the ability to track high dynamics in addition to the “pull in” capabilities being lost.
In order to overcome the limits on bandwidth, a second tracking loop is often used with the higher bandwidth code-tracking loop. The higher bandwidth loop is used to pull in the signals. Once acquired, the low bandwidth loop then tracks the signal. But, such designs have the limitation of allowing the transition from an initial bandwidth loop to the lower bandwidth loop to occur only once.
One common tracking loop filter is a Kalman filter. The Kalman filter response is based on a system's dynamic and noise model. But, the drawback of using such known filters is that the filters are computationally expensive and require more processing memory and power in addition to being non-variable.
Thus, there is a need in the art for a tracking loop filter that is able to overcome limitations of known bandwidth tracking loops and that are not computationally expensive.